The technical area relating to the transmission of digital data, particularly by a radio or satellite channel has seen its importance take a growing significance, in the last decade.
A basic constraint is the conservation of the integrity of this data and finally of the intelligibility of the information carried during the transmission of this data. Indeed, in the case where physical disturbances, (in particular of a radio-electric nature), occur, the transmitted message is corrupted and may become unusable.
In order to protect against such risks, numerous applications using a digital data transmission method, audio and/or video transmission by terrestrial or satellite broadcasting, it is prudent to call for encoding processes of transmitted data, and in particular of convolutive encoding.
The convolutive encoding process represents a high performance error correcting encoding process class, which can be applied to operations of data series transmission, in a transmission channel disrupted by a Gaussian type of noise, such as the transmission channel by radio connection between a terrestrial station and a satellite station.
Generally speaking, to encode a message with a convolutional type of encoding, not only the current data present at the instant t at input to the encoder, current bit of rank k, is used, but also the n data values or bits of the previous rank. A memory effect of order n to encode this data is thus introduced. In referring to such a principle, it appears that every transmitted message takes account of the previous content of the message. The previous content of the message at the instant t is memorised in a memory updated with each current bit. The size of this memory is defined by the length of the previous content, which is called constraint length of the code used and designated by K, with K=n+1.
Referring to FIG. 1, relative to a known convolutive encoding device of the prior art, a memory formed for example by a shift register provided with elementary cells enabling n successive bits to be memorised, the bit previous to the current bit i(D−1) up to the bit i(D−n) of rank D−n, then enables a logic processing, by an exclusive OR type of logic operator for example, of the current bit i(D) by several previous bits of a specified rank. In the usual way and in order to reinforce protection against errors, it is appropriate to generate two or more encoded values a(D) and b(D), correlated by two distinct constraints. Each encoded value associated with a(D);b(D) thus constitutes a representative symbol S(D)={a(D);b(D)} of the current data i(D). In the example of FIG. 1 given as a non-restrictive example, the depth of encoding is K=7. The successive encoded values a(D) and b(D) are given by the relations:a(D)=i(D)g1(D) with g1=171 octb(D)=i(D)g2(D) with g2=133 oct
The notation oct designating the octal notation.
Thus the aforementioned convolutive encoding and the corresponding error correcting codes can be used by means of simple structure circuits.
The decoding process of such codes, and consequently the transmission error correction, necessitate on the other hand the use of much more complex functions.
In particular, in the case of convolutive encoding, the optimum decoding of a code obtained in this way can be obtained by means of the use of a decoding process according to the VITERBI algorithm. The principle of the aforementioned algorithm is based on the fact that the encoder corresponds in fact to a state machine or robot of simple structure or having at least a limited number of states.
According to the aforementioned principle, the receiver-decoder searches for an estimation at each instant of the state of the encoder, to determine the transmitted sequence during the reception of all new data, i.e. of the current bit of successive rank.
A universal decoding process of such a code then consists of comparing the received sequence, at the current instant, with all the possible sequences which can be transmitted and to choose, from amongst these, that which presents a maximum probability.
In order to do this, the most probable a posterior coded sequence is then determined by determining the smallest distance value between the received sequence and the possible coded sequences, the notion of distance value being defined according to the notion of Hamming distance.
A lattice diagram enables the developments of the state of the encoder to be displayed as a function of time, for the value of the data of input bit of rank k, each lattice node representing a possible state of the encoder and of the encoded value. For each new value received, the Hamming distance is then calculated at each point of the lattice. This distance is accumulated with the calculated value at this same point during the evaluation of the previous value. To determine the most probable sequence then consists in returning to the lattice diagram and looking for the decoded values which correspond globally to the smallest accumulated Hamming distance.
For a more complete description of the VITERBI algorithm, reference is made to the article entitled The Viterbi Algorithm published by G. David FORNEY, Jr., Proceedings of the IEEE vol.61, No. 3, March 1973, pp. 268 to 278.
The search process of the decoded values which correspond globally to the smallest Hamming distance, by bringing into the diagram a data and sequence value with the following data and sequence value, necessarily involves a decoding and by corollary a highly continuous encoding process. In other words, if it is desired to process a decoding of a sequence generated by means of a convolutive encoding, it is in no way conceivable then to interrupt the recovery of the encoding or decoding. Such an interruption, introducing discontinuities in the lattice diagram, would then have the effect, because of such a discontinuity, of destroying any chance of finding the path for which the Hamming distance is minimal and consequently the most probable sequence.